// package main
// import (
// 	"fmt"
// 	// "unsafe"
// 	)
// func getUserinfo()(string,int){
// 	return "alice",25
// }
// func main(){
// 	fmt.Println("hello ,golang");
	// name := "alice"
	// age := "25"
	// age1 := "26"
	// age2 := "27"
	// fmt.Println("name:",name,"age:",age,"age1:",age1,"age2:",age2);
	// fmt.Print("name:",name,"age:",age,"age1:",age1,"age2:",age2);
	// fmt.Printf("name:",name,"age:",age,"age1:",age1,"age2:",age2);
	// fmt.Println("A")
	// fmt.Println("B")
	// fmt.Println("C")
	// fmt.Print("A")
	// fmt.Print("B")
	// fmt.Print("C")
	// var a = "aaa"
	// fmt.Println(a)
	// var a = "aaa"
	// fmt.Printf("%v", a)
	// var a int = 10
	// var b int = 3
	// var c int = 5
	// fmt.Println("a=", a, "b=", b, "c=", c)
	// fmt.Printf("a=%v b=%v c=%v\n", a, b, c)
	// fmt.Printf("a=%v b=%v c=%v", a, b, c)
	// a := 10
	// b := 20
	// c := 30
	// fmt.Printf("a=%v a的类型是:%T",a ,a)
	// var (
	// 	username string
	// 	age int
	// 	sex string
	// )
	// username = "alice"
	// age = 24
	// sex = "女"
	// fmt.Println(username, age, sex)
	// a,b,c := 10,20,"c"
	// fmt.Println(a,b,c)
	// fmt.Printf("a的类型:%T b的类型:%T c的类型:%T" ,a ,b, c)
	// var _,age = getUserinfo()
	// fmt.Println(age)
	// var username = "alice"
	// username = "aliceo"
	// fmt.Println(username)
	// const a = 3.1415926
	// fmt.Println(a)
	// const(
	// 	a = "aaa"
	// 	b = "bbb"
	// )
	// fmt.Println(a,b)
	// const(
	// 	n1 = 100
	// 	n2 
	// 	n3 
	// 	n4 
	// )
	// fmt.Println(n1,n2,n3,n4)
	// const a = iota
	// fmt.Println(a)
	// const(
	// 	n1 = iota
	// 	_ 
	// 	n3 
	// 	n4 
	// )
	// fmt.Println(n1,n3,n4)
	// const(
	// 	n1 = iota
	// 	n2 = 100
	// 	n3 = iota
	// 	n4
	// )
	// fmt.Println(n1,n2,n3,n4)
	// const(
	// 	n1,n2 = iota+1,iota+2
	// 	n3,n4
	// 	n5,n6
	// )
	// fmt.Println(n1,n2)
	// fmt.Println(n3,n4)
	// fmt.Println(n5,n6)
	// n1,n2 := 20,30
	// fmt.Println(n1,n2)
	// var num int = 10
	// fmt.Printf("num=%v 类型：%T",num,num)
	// var num int8 = 98
	// fmt.Printf("num=%v 类型：%T",num,num)
	// var num int16 = 130
	// fmt.Printf("num=%v 类型：%T",num,num)
	// var a int32 = 15
	// fmt.Printf("a=%v 类型:%T\n",a,a)
	// fmt.Println(unsafe.Sizeof(a))
	// var a uint16 = 20
	// fmt.Printf("a=%v 类型:%T\n",a,a)
	// fmt.Println(unsafe.Sizeof(a))
	// var a1 int32 = 20
	// var a2 int64 = 21
	// fmt.Println(int64(a1) + a2)  
	// fmt.Println(a1 + int32(a2))  

	// 不同的类型输出结果
// 	n1 := 9
	//%v原样输出
// 	fmt.Printf("n1=%v 类型:%T\n",n1,n1)

	//%d表示十进制输出
// 	fmt.Printf("n1=%d 类型:%T\n",n1,n1)

	//%b表示二进制输出
// 	fmt.Printf("n1=%b 类型:%T\n",n1,n1)

	//%o表示八进制输出
// 	fmt.Printf("n1=%o 类型:%T\n",n1,n1)

	//%x表示十六进制输出
// 	fmt.Printf("n1=%x 类型:%T\n",n1,n1)
// } 


// float类型学习
package main

import (
	"fmt"
	// "unsafe"   //导入了依赖包就必须使用
)

func main() {
	// 1、定义float类型
	// var a float32 = 3.12
	// fmt.Printf("值：%v--%f,类型%T\n",a,a,a)	//输出结果默认保留小数点后6位
	// fmt.Println(unsafe.Sizeof(a))	//输出float32所占用的字(占了四个字节)

	// var b float64 = 3.12
	// fmt.Printf("值：%v--%f,类型%T\n",b,b,b)	//输出结果默认保留小数点后6位，%T格式化输出所属参数的类型
	// fmt.Println(unsafe.Sizeof(b))	//输出float64所占用的字(占了八个字节)

	// 2、%f 输出float类型 %.2f 输出的数据保留小数点后两位
	// var c float64 = 3.14132534546
	// fmt.Printf("值：%v--%.2f,类型%T\n",c,c,c)
	// fmt.Println(unsafe.Sizeof(c))	//输出float64所占用的字(占了八个字节)

	// 2、保留四位小数
	// var d float64 = 3.1415926
	// fmt.Printf("值：%v--%.4f,类型%T\n",d,d,d)
	// fmt.Println(unsafe.Sizeof(d))
 
	// // 3、在64位操作系统中go语言默认的浮点数是float64
	// f1 := 3.1415926
	// fmt.Printf("值：%v--%f,类型%T\n",f1,f1,f1)

	// // 4、Golang 科学计数法表示浮点数
	// var f2 float32 = 3.14e2	// 表示f2等于3.14乘以10的二次方（等于314）
	// fmt.Printf("值：%v--%f,类型%T\n",f2,f2,f2)

	// var f3 float32 = 3.14e-2	// 表示f2等于3.14除以10的二次方（等于0.0314）
	// fmt.Printf("值：%v--%f,类型%T\n",f3,f3,f3)

	// 5、Golang 中 精度丢失的问题
	// var f4 float64 = 1129.6
	// fmt.Println(f4*100)  // 实际输出：112959.99999999999 预期：112960  问题解决方案：可以使用第三方的包decimal来解决
	// m1 := 8.2
	// m2 := 3.8
	// fmt.Println(m1 - m2)	// 实际输出：4.3999999999999995 预期：4.4  问题解决方案：可以使用第三方的包decimal来解决
	
	// 6、int类型转换成float类型
	// a := 10
	// b := float64(a)
	// fmt.Printf("a的类型是:%T b的类型是:%T",a,b)

	// 7、float32类型转换成float64
	// var a1 float32 = 23.4
	// a2 := float64(a1)
	// fmt.Printf("a1的类型是:%T a2的类型是:%T",a1,a2)

	// 8、float类型转换成int类型  (会丢失数值不建议这样做)
	// var a3 float64 = 11.32
	// a4 := int(a3)
	// fmt.Printf("a3的值:%v,a3的类型是:%T,a4的值:%v,a4的类型是:%T",a3,a3,a4,a4)


	// Go语言中的bool类型
	
}
		


